﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using BOL;
using System.Data.Linq;
using System.Data.SqlClient;
using Website.Logger;
using System.Web.Script.Services;
using System.Web.Services;
using UtilityExtensions;

namespace UILGestion.ObraAdmin.Comparativos
{
    public partial class ComparativoListForm : System.Web.UI.Page
    {
         [WebMethod(), ScriptMethod()]
        public static string GetProveedor(String prefixText, String contextKey)
        {
             //para este caso uso la variable contexkey para enviar la obra
            ProveedorBL bol = new ProveedorBL();
            return bol.getProveedorComparativoAll(prefixText, 20, contextKey.ToInt());

        }
         [WebMethod(), ScriptMethod()]
         public static string GetComparativo(String prefixText, String contextKey)
         {
             //para este caso uso la variable contexkey para enviar la obra
             ComparativoBL bol = new ComparativoBL();
             return bol.getComparativoDescripcion(prefixText, 20, contextKey.ToInt());

         }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {

                try
                {

                    idObra.Value =(string) Request.Params["idObra"];
                    menuObraCtrl1.loadMenu(int.Parse(idObra.Value), Request.AppRelativeCurrentExecutionFilePath);
                    FormatForm();


                }
                catch (SqlException sqlex)
                {
                    WebServerSideSqlError.Log(sqlex);
                    //string script;
                    //script = String.Format("<script languaje=\"javascript\">" +
                    //    "alert(" + sqlex + ")"+
                    //          "</script>");
                    //ClientScript.RegisterStartupScript(this.GetType(), "", script);
                    
                }
                catch (Exception ex)
                {
                    WebServerSideError.Log(ex);
                }


            }
        }

        //private void Find()
        //{
        //    dbGestionDataContext _db;

        //    _db = new dbGestionDataContext(Parametros.strConnString);

        //    //(DD/MM/yyyy)
        //    System.IFormatProvider MiFp =
        //                                                new System.Globalization.
        //                                                CultureInfo("es-ES", false);
        //    //valores de parametro

        //    //int selectid = int.Parse(obraDropDownList.SelectedValue);

        //    //valores de parametro
            
        //    DateTime fechaInicio = new DateTime(2010, 1, 1);
        //    DateTime fechafin = DateTime.Now;

        //    if (inicioDateTime.Text.Length > 0)
        //    {
        //        fechaInicio =
        //            System.DateTime.ParseExact(inicioDateTime.Text, "dd/MM/yyyy", MiFp);
        //    }
        //    if (finDateTime.Text.Length > 0)
        //    {
        //        fechafin =
        //            System.DateTime.ParseExact(finDateTime.Text, "dd/MM/yyyy", MiFp);
        //    }


        //    //IQueryable<view_Comparativo> q;
        //    //switch (selectid)
        //    //{
        //    //    case 0:
        //    //        q = from r in _db.view_Comparativo
        //    //            select r;

        //    //        break;

        //    //    default:
        //    //        q = from r in _db.view_Comparativo
        //    //            where r.idObra == selectid
        //    //            select r;
        //    //        break;
        //    //}
        //    //List<view_Comparativo> e = q.ToList();
        //    ComparativoBL comparativo = new ComparativoBL();
            
        //    List<ComparativoListInfo> e = comparativo.getComparativoList(int.Parse(idObra.Value),
        //        fechaInicio,
        //        fechafin);


        //    if (e.Count() == 0)
        //    {
        //        ComparativoListInfo vacio = new ComparativoListInfo();
        //        vacio.idInternal = 0;
        //         e.Add(vacio);
        //    }

        //    comparativoGridView.DataSource = e.ToList();
        //    comparativoGridView.DataBind();
            
        //    int a = e.First().idInternal;
        //    if (a == 0)
        //        comparativoGridView.Rows[0].Visible = false;


        //}

        private void restriccionesForm()
        {
            //--------------------
            int idEmpleadoEmisor = int.Parse(System.Web.HttpContext.Current.Session["idEmpleado"].ToString());
            bool acceso = new DAL.FormularioAcceso().VerificarAcceso(DbUtil.Db,
                idEmpleadoEmisor,
                2,  //comparativo
                int.Parse(idObra.Value),
                1);  //read
            //------------------------- 
            // los paneles presentes en el formulario
            pnlMain.Visible = true;
            //proveedorIntParentPanel.Visible = true;
            PanelButtom.Visible = true;
            PanelBody.Visible = true;
            
        }

        private void FormatForm()
        {

            restriccionesForm();

            ShowAllComboBox();
            inicioDateTime.Text = DbUtil.Db.Obras.Single(p => p.idInternal == int.Parse(idObra.Value)).fechaInicio.Value.ToShortDateString();
            finDateTime.Text = DateTime.Now.ToShortDateString();
            proveedortxt.ChkVal = idObra.Value;
            restriccionesForm();

        }
        protected void ShowAllComboBox()
        {

            
                Obra obra = DbUtil.Db.Obras.Single(p => p.idInternal == int.Parse(idObra.Value));
                inicioDateTime.Text = obra.fechaInicio.Value.ToShortDateString();
                finDateTime.Text = DateTime.Now.ToShortDateString();
            

            estadoDDL.DataSource=new ListValueBL().GetEstadoComparativo();
            estadoDDL.DataBind();
            

            //obraDropDownList.Items.Clear();

            //dbGestionDataContext _db;


            //_db = new dbGestionDataContext(Parametros.strConnString);
            //var q = from r in _db.Obras
            //        select r;
            //List<DAL.Obra> e = q.ToList();
            //DAL.Obra todoItem = new DAL.Obra();
            //todoItem.idInternal = 0;
            //todoItem.descripcion = "------Todos------";
            //e.Add(todoItem);

            //OBRA empleadoMiEquipo = new Employees();
            //empleadoMiEquipo.internalid = 1;
            //empleadoMiEquipo.entityid = "Mi Equipo";
            //e.Add(empleadoMiEquipo);
            ////e.OrderByDescending<Employees>(2);

            //obraDropDownList.DataSource =
            //    e.OrderBy(w => w.idInternal).ToList();
            //obraDropDownList.DataTextField = "descripcion";
            //obraDropDownList.DataValueField = "idInternal";
            //obraDropDownList.DataBind();
            //obraDropDownList.SelectedValue = "0";

            //obraDropDownList.SelectedValue = idObra.Value;

        }
      

        protected void Button_Click(object sender, EventArgs e)
        {
            if(((Button)sender).ID==nuevoButton.ID)
            {
            Response.Redirect("ComparativoInsertForm.aspx?idObra=" + idObra.Value, true);
            }
            if(((Button)sender).ID==BuscarBtn.ID)
            {
                ComparativoListGrid1.DataBind();
            }
            if (((Button)sender).ID == ExportarButton.ID)
            {
                Response.Redirect("~/Rpt/ExportExcelForm.aspx?type=COMPARATIVO&idObra=" + idObra.Value, true);   
            }
            

        }

        
        protected void obraDropDownList_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {

               // Find();
                //estadistica();
            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                //string script;
                //script = String.Format("<script languaje=\"javascript\">" +
                //    "alert(" + sqlex + ")"+
                //          "</script>");
                //ClientScript.RegisterStartupScript(this.GetType(), "", script);

            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
            }

        }
        protected void fechaInicioDateTime_TextChanged(object sender, EventArgs e)
        {
            try
            {
              //  Find();

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
              

            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
               
            }

        }

      
       protected void actualizarButton_Click(object sender, EventArgs e)
        {
          //  Find();
            
        }
   
    }
}
